var app = getApp();
var utils = require('../../utils/shop/formatShop.js');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    //顶部Swiper图
    imgUrls: [],
    //分类区
    cates: [],
    cates_total: 0,
    cates_group: [],
    
    //新品产品
    newArgs: {            //新品产品接口请求数据
      act: 'Products_IsNew',
      pageSize: 10,
      page: 1
    },
    newProducts: [],

    //热卖产品
    hotArgs: {            //热卖产品接口请求数据
      act: 'Products_IsRecommend',
      pageSize: 10,
      page:1
    },
    hotProducts: [],
    hotProducts_flag: true,
    appurl: app.globalData.init.front_url,

    //加载更多动画
    loading: true,
  },

  //首页字符串处理
  shopHome:function(res){
    if (res.errorCode == 0) {
      var home_json = JSON.parse(res.data.Home_Json);
      
      var imgUrls = this.data.imgUrls;
      for (var i in home_json) {
        var item = home_json[i];
        if (item['ContentsType'] == 1) {  //轮播图
          for (var j in item['ImgPath']) {
            if (item['ImgPath'][j] != '') { //判断不为空
              imgUrls.push({
                img: utils.img_path(app.globalData.init.front_url, item['ImgPath'][j]),  //图片路径处理
                url: item['program_Url'] && item['program_Url'][j] && item['program_Url'][j] != '' ? item['program_Url'][j] : '../pro_list/pro_list'
              });
            }
          }
        } else if (item.type == 'p4') {  //轮播图
          let img_list = item.pic && item.pic != '' ? item.pic.split('|') : [];
          let url_list = item.program_url && item.program_url != '' ? item.program_url.split('|') : [];
          for (var j in img_list) {
            if (img_list[j] != '') { //判断不为空
              imgUrls.push({
                img: utils.img_path(app.globalData.init.front_url, img_list[j]),  //图片路径处理
                url: url_list && url_list[j] && url_list[j] != '' ? url_list[j] : '../pro_list/pro_list'
              });
            }
          }
          break;
        }
      }
      
      this.setData({
        imgUrls: imgUrls
      });
    } else {
      wx.showModal({
        title: '提示',
        content: typeof res.msg != 'undefined' ? res.msg : '首页模版请求失败',
        showCancel: false
      });
    }

    //初始化分类
    var cateArgs = {
      UsersID: app.globalData.shopConfig.Users_ID,
      act: 'get_firstcate'
    }
    app.http_req(cateArgs, app.globalData.init.api_url, 'POST', this.shopCate);
  },

  //获取店铺分类
  shopCate: function (res) {
    if (res.errorCode == 0) {
      var cates = res.cateData;
      for (var i in cates) {
        cates[i]['Category_Img'] = utils.img_path(app.globalData.init.front_url, cates[i]['Category_Img']);
        //cates[i]['url'] = '../search/search?cateId=' + cates[i]['Category_ID'] + '&cateName=' + cates[i]['Category_Name'];
        cates[i]['url'] = '../pro_list/pro_list?Cate_ID=' + cates[i]['Category_ID'];
      }
      let cates_group = [];
      for (let i = 0; i < Math.ceil(cates.length / 10); i++) {
        cates_group.push(i);
      }
      this.setData({
        cates: cates,
        cates_total: cates.length,
        cates_group: cates_group
      })
    }
  },

  // 分类图片加载失败
  cate_img_error (e) {
    let idx = e.currentTarget.dataset.idx;
    this.setData({
      ['cates[' + idx + '].Category_Img']: '/images/none.png'
    });
  },

  //请求新品产品
  setNewProducts:function(res) {
    if (res.errorCode === 0) {
      //格式化成为前端方便展示的产品格式
      var newProducts = utils.formatShop(app.globalData.init.front_url, res.data);
      this.setData({
        newProducts: newProducts
      });
    }
  },

  //请求热卖产品
  getHotProducts: function () {
    this.setData({
      loading: true
    });
    app.http_req(this.data.hotArgs, app.globalData.init.api_url, 'POST', (res) => {
      if (res.errorCode === 0) {
        //格式化成为前端方便展示的产品格式
        var old_hotProducts = this.data.hotProducts;
        var hotProducts = utils.formatShop(app.globalData.init.front_url, res.data);
        this.setData({
          hotProducts: old_hotProducts.concat(hotProducts),
          'hotArgs.page': this.data.hotArgs.page + 1,
          hotProducts_flag: (res.totalCount / this.data.hotArgs.pageSize) > this.data.hotArgs.page ? true : false
        });
      }

      this.setData({
        loading: false
      });

      // 结束下拉刷新
      utils.overPullDownRefresh();
    });
  },

  //图片加载失败处理（显示默认图片）
  show_default_proImg: function (e) {
    var proid = e.currentTarget.dataset.proid;
    var cate = e.currentTarget.dataset.cate;
    if (cate == 'new') {
      this.setData({
        newProducts: utils.show_default_proImg(this.data.newProducts, proid)
      });
    } else if (cate == 'hot') {
      this.setData({
        hotProducts: utils.show_default_proImg(this.data.hotProducts, proid)
      });
    }
  },
  
  //跳转详情页
  detail:function(e){
    var proid = e.currentTarget.dataset.proid;
    var ptflag = e.currentTarget.dataset.ptflag;
    wx.navigateTo({
      url: ptflag ? '../detail_pt/detail_pt?proid=' + proid : '../detail/detail?proid=' + proid
    });
  },

  //获取店铺的配置
  ShopConfig: function (res) {
    if (res.errorCode == 0) {
      app.globalData.shopConfig = res.data;
      this.load();
    } else {
      wx.showModal({
        title: '错误',
        content: res.msg,
        showCancel: false
      });
    }
  },

  //页面加载
  load: function () {
    wx.hideLoading();
    if (!app.globalData.shopConfig) {
      //获取商家配置信息
      app.getShopConfig(this.load);
      return false;
    }
	
    //设置页面标题为商家店铺名称
    wx.setNavigationBarTitle({
      title: app.globalData.shopConfig && app.globalData.shopConfig.ShopName ? app.globalData.shopConfig.ShopName : '我的小店'
    });
    //获取店铺首页配置
    app.getShopHome(this);

    //初始化新品产品
    app.http_req(this.data.newArgs, app.globalData.init.api_url, 'POST', this.setNewProducts);

    //初始化热卖产品
    this.getHotProducts();
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //显示加载导航条
    wx.showNavigationBarLoading();
    
    //获取分享链接中携带的ownerid，用于用户注册
    if (options.ownerid) {
      app.globalData.ownerid = options.ownerid;
    }
    this.load();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    //隐藏页面加载导航条
    wx.hideNavigationBarLoading();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 检查用户是否登录
    if (!app.globalData.userInfo) {
      app.login('', this.load);
      wx.hideShareMenu();
    } else {
      wx.showShareMenu({
        withShareTicket: true
      })
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    //显示加载导航条
    wx.showNavigationBarLoading();
    //初始化数据 (防止数据重复)
    this.setData({
      //顶部Swiper图
      imgUrls: [],
      //分类区
      cates: [],
      cates_total: 0,
      cates_group: [],

      //新品产品
      newProducts: [],
      'newArgs.page': 1,

      //热卖产品
      hotProducts: [],
      'hotArgs.page' : 1,
      hotProducts_flag: true,

      //加载更多动画
      loading: false
    });
    this.load();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if (this.data.hotProducts_flag && !this.data.loading) {
      this.getHotProducts();
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    return app.shareInfo();
  }
})